Random access memory (RAM) associates data with an address. Volatile RAMs such as dynamic RAM (DRAM) and static RAM (SRAM) are traditionally used in today's computers. However, as wireless mobile computing systems become more popular, intensive research and development in the memory area is now focusing on new non-volatile memories. Important non-volatile RAMs known today are ferroelectric RAM (FeRAM) using non-linear capacitance due to different polarization of the lead-zirconium-titanate (PZT) material, magnetic RAM (MRAM) using the magneto-resistance changes with magnetic polarity, and Chalcogenide phase change materials using resistance changes in ordered (conductive) and disordered (resistive) phases.
Advancement in telecommunication technology leads to an increasing number of applications using content addressable memory devices (CAM). The CAM associates an address with data. The data are presented on the inputs of the CAM that searches for a match for those data stored in the CAM. When a match is found the CAM identifies the address location of the data.
Most existing CAM products are volatile technologies based on SRAM or DRAM cells. FIG. 1 shows a typical SRAM based binary CAM cell 10. Two inverters INV1 and INV2 form a latch that stores the true and complementary data on nodes N1 and N2. In the write mode, data are written into CAM cells through bitlines BL and bBL through negative-channel metal oxide semiconductor (NMOS) transistor T1 and T2. In the precharge phase of the search mode, matchline (ML) is precharged to high. In the evaluation phase of the search mode, input data presented to the CAM are delivered to the CAM cells through searchlines SL and bSL.
When there is a match, the two gates in the path of T3 and T4 as well as in the path of T5 and T6 will have different polarity, so that one of the transistors in each path will be off. Thus, there is no current flowing between the match-line and sink-line through a matched CAM cell.
On the other hand, when there is a mismatch, one of the two paths will have both transistors turned on and allow current flowing between the sink-line and match-line. Sink-line is normally connected to ground and thus will discharge the match-line when a mismatch occurs. In an example of a 16 bit wide CAM, each match-line is connected to all sixteen CAM cells 10. When any of the CAM cells shows a mismatch, the match-line will be discharged to zero. If all sixteen cells match, the match-line will stay at the precharged high level and a match is found.
Although SRAM-based CAM dominates today's technology, it is a volatile technology where the data is lost when power is turned off. In computation applications in the future, particularly for mobile applications, non-volatile technology is likely to be pervasive.
There are some known non-volatile CAM approaches. U.S. Pat. No. 5,111,427 describes a non-volatile CAM with electrically erasable programmable read-only memory (EEPROM) cells. The EEPROM based CAMs require much slower programming time compared to the volatile CAMs. More recently, U.S. Pat. Nos. 6,191,973 and 6,269,016 describe a non-volatile CAM based on magnetic RAM cells. Such cells encounter more expansive deposition of magnetic layers, as well as the requirement of sensitive sensing of small resistance changes. For example, the typical magneto resistance changes for the “1” state and “0” state in a MRAM cell is 20%-30%, with the highest reported lab data up to 100%.
Accordingly, a need exists for improved non-volatile CAM systems.